package judesart.app.client.artwork;

import java.util.List;

import judesart.app.domain.Artwork;
import judesart.app.shared.SearchResult;
import judesart.app.shared.SelectProject;
import com.google.gwt.user.client.rpc.AsyncCallback;

public interface ArtworkControllerAsync
{
    void createArtwork(Artwork artwork, AsyncCallback<Artwork> callback);

    void updateArtwork(Artwork artwork, AsyncCallback<Artwork> callback);

    void searchArtworks(int startAt, int maxElements, AsyncCallback<SearchResult<Artwork>> callback);

    void getArtwork(Long id, AsyncCallback<Artwork> callback);

    void deletePhotoFromArtwork(Long artworkId, Long imageId, AsyncCallback<Void> callback);

    void deleteArtwork(Long artworkId, AsyncCallback<Void> callback);

    void getSelectProjectValues(Long artworkId, AsyncCallback<List<SelectProject>> callback);

    void getRandomArtwork(Long artistId, AsyncCallback<Artwork> callback);
}
